Алгоритм Ґровера
Алгоритм Ґровера (також GSA від англ. Grover search algorithm) — квантовий алгоритм вирішення задачі перебору, тобто пошуку рішення рівняння
де є булева функція від змінних, а — двійковий вектор довжини . Був запропонований американським математиком Ловом Ґровером в 1996 році.
Передбачається, що функція задана у вигляді чорного ящика, або оракула, тобто в ході рішення ми можемо тільки задавати оракула питання типу: «чому дорівнює при даному », І після отримання відповіді використовувати його в подальших обчисленнях. Тобто завдання вирішення рівняння (1) є загальною формою завдання перебору; тут потрібно знайти «пароль до пристрою », Що класично вимагає прямого перебору всіх варіантів.
Алгоритм Ґровера знаходить деякий корінь рівняння, використовуючи звернень до функції , з використанням кубітів.
Сенс алгоритму Ґровера складається в «посиленні амплітуди» цільового стану за рахунок зменшення амплітуди всіх інших станів. Геометрично алгоритм Ґровера полягає в обертанні поточного вектора стану квантового комп'ютера у напрямку точно до цільового стану (рух по найкоротшому шляху забезпечує оптимальність алгоритму Ґровера). Кожен крок дає обертання на кут , де кут між і становить . Подальше продовження ітерацій оператора G дасть продовження обходу кола в речовій площині, породженої даними векторами.
Ґроверівське «посилення амплітуди» є, мабуть, фундаментальним фізичним феноменом в квантової теорії багатьох тіл. Наприклад, його облік необхідний для оцінки ймовірностей подій, які здаються «рідкісними». Процес, який реалізує схему алгоритму Ґровера, призводить до вибухового зростання спочатку знехтуваної малої амплітуди, що здатне швидко довести її до реально спостережуваних величин.
Хоча мета алгоритму Ґровера зазвичай описується як «пошук в базі даних», можна більш точно описати його як «інвертування функції». Насправді, так як «пророча машина» неструктурованої бази даних вимагає, хоча б лінійної складності, алгоритм не може бути використаний для реальних баз даних.[1] Грубо кажучи, якщо функцію можна оцінити на квантовому комп'ютері, алгоритм Ґровера обчислює за заданим . Інверсія функція пов'язана з пошуком бази даних, тому що ми могли б придумати функцію, яка виробляє одне конкретне значення (наприклад «істинно»), якщо відповідає потрібному запису в базі даних, і інше значення («хибно») для інших значень .
Алгоритм Ґровера також може бути використаний для знаходження медіани і середнього арифметичного числового ряду.[2] Крім того, він може застосовуватися для вирішення NP-повних задач шляхом вичерпного пошуку серед безлічі можливих рішень. Це може спричинити значний приріст швидкості в порівнянні з класичними алгоритмами, хоча і не надаючи «поліноміального рішення» в загальному вигляді. Алгоритм може бути додатково оптимізовано, якщо існує більше, ніж один елемент. що збігається і число збігів відомо заздалегідь.
Розглянемо невпорядовану базу даних з записів. Алгоритм вимагає -вимірний простір станів , в яких можуть перебувати кубітів. Розглянемо задачу визначення індексу записи бази даних, який задовольняє деяким заданим критеріям. Нехай — функція, яка показує всі записи бази даних 0 або 1, де тоді і тільки тоді, коли відповідає критерію пошуку (). Ми отримали доступ до цієї функції у вигляді унітарного оператора (так званий оракул або пророча машина), що діє в такий спосіб:
або коротко,
.
Тобто це фазовий оракул (такий, що додає мінус перед поміченими значеннями , а інші залишає без змін). Альтернативне визначення за допомогою іншого типу оракулу може виникнути, якщо ми маємо додатковий кубіт (як у квантовій системі, яка зображена нижче). Операція тоді представляє собою:
або коротко,
Це природний спосіб реалізувати бінарну операцію з використанням методу зворотного обчислення. Зверніть увагу, що якщо додатковий кубіт знаходиться в стані , ми отримаємо наш бажаний оракул та додатковий кубіт:
Не дивлячись на те, який саме оракул для нам задано, ми зможемо отримати потрібний .[3]
Етапи роботи алгоритму Ґровера наведено нижче. Позначимо через рівномірну суперпозицію за всіма станами
Тоді оператор
вважатимемо за оператор дифузії Ґровера.
Власне алгоритм:
- Ініціалізуємо стан систем
- Виконуємо наступні «ітерації Ґровера» раз. Функція асимптотично є , як описано нижче.
- Застосовуємо оператор .
- Застосовуємо оператор .
- Вимірюємо отриманий квантовий стан.
Для правильного вибраної кількості ітерацій результат буде з імовірністю, що наближається до 1 при N ≫ 1. Аналіз показує, що .
Попереднє спостереження, паралельно з нашим визначенням
є , що може бути виражено альтернативним шляхом:
Іншими словами, обидва перетворення мають перетворення типу Хаусхолдера. Для доказу цього достатньо, щоб перевірити, як діє на основні стани:
Наступні обчислення показують, що відбувається в першій ітерації::
Варто відзначити окремий випадок при N = 4 з одним визначеним станом. Це означає, що в одному застосуванні ітератора Ґровера зазначений стан повертається.
Після застосування операторів і , квадрат амплітуди запитуваного елемента збільшиться з до
Припустимо, рівняння (1) має корені. Класичний алгоритм розв'язання такої задачі (лінійний пошук), очевидно, вимагає звернень до для того, щоб вирішити задачу з імовірністю ½. Алгоритм Ґровера дозволяє розв'язати задачу пошуку за час , тобто близько до квадратного кореня з класичного, що є величезним прискоренням. Доведено, що Алгоритм Ґровера є оптимальним в таких випадках:
- константу не можна поліпшити.
- більшого квантового прискорення, ніж квадратичне, не можна отримати.
Алгоритм Ґровера є приклад масової задачі, що залежить від оракула. Для більш приватних завдань вдається отримати більше квантове прискорення. Наприклад, алгоритм факторизації Шора дає експонентний виграш у порівнянні з відповідними класичними алгоритмами.
Те, що f задана у вигляді чорного ящика, ніяк не впливає в загальному випадку на складність як квантових, так і класичних алгоритмів. Знання «пристрою» функції f (наприклад, знання задає її схеми з функціональних елементів) в загальному випадку ніяк не може допомогти у вирішенні рівняння (1). Пошук в базі даних співвідноситься зі зверненням функції, яка приймає певне значення, якщо аргумент x відповідає шуканої записи в базі даних.
Відомо, що алгоритм Ґровера є оптимальним. Тобто, будь-який алгоритм, який отримує доступ до бази даних тільки за допомогою оператора Uω має застосовувати Uω принаймні, стільки раз алгоритм Ґровера.[4] Цей результат важливий для розуміння меж квантових обчислень.
Якщо проблема пошуку в Ґровера мала розв'язок з logc N застосувань Uω, що означало б, що NP міститься в BQP, шляхом перетворення проблем в NP в пошукових завдань Ґровер-типу. Оптимальність алгоритму Ґровера передбачає (але не доводить), що NP не міститься в BQP.
Число ітерацій для «помічених» записів, , також є оптимальним.[5]
В базах даних, які не представлені в явному вигляді оракул викликається для оцінки елемента по його індексу, при цьому читання елементів повної бази даних один за одним і перетворення його в доступне подання може зайняти набагато більше часу, ніж пошук Ґровера. Для врахування таких ефектів, алгоритм Ґровера можна розглядати як рішення рівняння або задовольняють обмеження. У таких використаннях, оракул є способом перевірити обмеження і не пов'язаний з алгоритмом пошуку. Це поділ, як правило, запобігає алгоритмічній оптимізації, в той час як звичайні алгоритми пошуку часто покладаються на такі оптимізації і уникнути повного перебору. Ці та інші міркування з приводу використання алгоритму Ґровера обговорюються в статті Віамонте, Маркова та Хеєса.[6]
- Алгоритм пошуку екстремуму цілочисельної функції (P. Hoyer і ін.). Шукається найбільше значення функції . Квантовий алгоритм знаходить максимум за звернень до .
- Алгоритм пошуку співпадаючих рядків в базі даних (Амбайніс). Шукається пара різних аргументів , на яких функція приймає одне і те ж значення. Алгоритм вимагає звернень до .
- Безперервні версії алгоритму Ґровера
- Нехай гамільтоніан квантової системи має вигляд , де і являють собою оператори і відповідно. Тоді безперервна унітарна еволюція з гамільтоніаном , починаючи з , приводить до . Складність такого безперервного аналога алгоритму Ґровера точно та ж, що і для дискретного випадку.
- Адіабатичний варіант алгоритму Ґровера. Повільна еволюція основного стану типу під дією гамільтоніана, залежить від f , згідно адіабатичній теоремі, за час порядку веде до стану .
- ↑ Архівована копія (PDF). Архів оригіналу (PDF) за 3 лютого 2021. Процитовано 15 листопада 2020.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) - ↑ Grover, Lov K. (1997). A framework for fast quantum mechanical algorithms. arXiv:quant-ph/9711043.
- ↑ Chuang, Isaac L. (2010). Quantum computation and quantum information (вид. 10th anniversary ed). Cambridge: Cambridge University Press. ISBN 978-1-107-00217-3. OCLC 665137861.
- ↑ Bennett C.H.; Bernstein E.; Brassard G.; Vazirani U. (1997). The strengths and weaknesses of quantum computation. SIAM Journal on Computing. 26 (5): 1510—1523. arXiv:quant-ph/9701001. doi:10.1137/s0097539796300933. Архів оригіналу за 6 березня 2016. Процитовано 15 листопада 2020.
- ↑ Michel Boyer; Gilles Brassard; Peter Høyer; Alain Tapp (1998), Tight Bounds on Quantum Searching, Fortsch. Phys., 46: 493—506, arXiv:quant-ph/9605034, Bibcode:1998ForPh..46..493B, doi:10.1002/3527603093.ch10, ISBN 9783527603091
- ↑ Viamontes G.F.; Markov I.L.; Hayes J.P. (2005), Is Quantum Search Practical? (PDF), Computing in Science and Engineering, 7 (3): 62—70, arXiv:quant-ph/0405001, Bibcode:2005CSE.....7c..62V, doi:10.1109/mcse.2005.53, архів оригіналу (PDF) за 3 лютого 2021, процитовано 15 листопада 2020
- Grover L.K.: A fast quantum mechanical algorithm for database search [Архівовано 1 жовтня 2017 у Wayback Machine.], Proceedings, 28th Annual ACM Symposium on the Theory of Computing, (May 1996) p. 212
- Grover L.K.: From Schrödinger's equation to quantum search algorithm [Архівовано 11 листопада 2020 у Wayback Machine.], American Journal of Physics, 69(7): 769—777, 2001. Pedagogical review of the algorithm and its history.
- Grover L.K.: QUANTUM COMPUTING: How the weird logic of the subatomic world could make it possible for machines to calculate millions of times faster than they do today [Архівовано 10 березня 2017 у Wayback Machine.] The Sciences, July/August 1999, pp. 24–30.
- Nielsen, M.A. and Chuang, I.L. Quantum computation and quantum information. Cambridge University Press, 2000. Chapter 6.
- What's a Quantum Phone Book?, Lov Grover, Lucent Technologies
- Grover's Algorithm: Quantum Database Search [Архівовано 7 листопада 2021 у Wayback Machine.], C. Lavor, L.R.U. Manssur, R. Portugal
- Grover's algorithm on arxiv.org
- Davy Wybiral. Quantum Circuit Simulator. Архів оригіналу за 16 січня 2017. Процитовано 13 січня 2017.
- Craig Gidney (5 березня 2013). Grover's Quantum Search Algorithm. Архів оригіналу за 17 листопада 2020. Процитовано 15 листопада 2020.
- François Schwarzentruber (18 травня 2013). Grover's algorithm. Архів оригіналу за 16 листопада 2020. Процитовано 15 листопада 2020.
- Alexander Prokopenya. Quantum Circuit Implementing Grover's Search Algorithm. Wolfram Alpha. Архів оригіналу за 20 листопада 2020. Процитовано 15 листопада 2020.
- Hazewinkel, Michiel, ред. (2001), computation, theory of Quantum computation, theory of, Математична енциклопедія, Springer, ISBN 978-1-55608-010-4
- Roberto Maestre (11 травня 2018). Grover's Algorithm implemented in R and C. Архів оригіналу за 17 жовтня 2021. Процитовано 15 листопада 2020.